package com.itheima.edu.info.manger.service;


import com.itheima.edu.info.manger.dao.StudentDao;
import com.itheima.edu.info.manger.domain.Student;

public class StudentService {
    //成员
    private StudentDao studentDao=new StudentDao();

    /**
     *
     * @param student 要添加的学生对象
     * @return 添加结果 true:成功 false:失败
     */
    public boolean addStudent(Student student) {
        //1.StudentDao对象调用addStudent方法，传入student参数将返回值返回。
        return studentDao.addStudent(student);
    }

    /**
     *
     * 判断学号是否存在
     * @parm id 要判断的学生学号
     * @return 是否存在结果 true:存在 false:不存在
     */
    public boolean isExists(String id) {
        Student[] students = studentDao.findAll();
        for (int i = 0; i < students.length; i++) {
            if (students[i] != null && students[i].getId().equals(id)) {
                return true;
            }
        }
        return false;
    }
    /**
     * 查询所有学生的方法
     * 学生数组
     */
    public Student[] findAll(){
        //1.通过StudentDao查询到所有学生数组后并返回。
        Student[] students=studentDao.findAll();
        //2.判断student数组中有没有学生元素，如果数组里面的数据都是null值,返回一个null,让Controller去判断,如果数组中有学生,则返回students数组.
        boolean flag=false;//默认数组中都是NULL值.
        for (int i = 0; i < students.length; i++) {
            if(students[i] !=null){
                flag=true;
                break;
            }
        }
        //3.判断flag的值是不是true,如果是true,则说明数组中最少有一个学生对象,如果是false,则说明FOR循环从头循环到尾,每一个元素都是NULL.
        if(flag){
            return students;
        }else{
            return null;
        }
    }
    /**
     * 根据学生ID删除学生信息的方法
     * @param id 要删除学生的学号
     * @return 删除成功后返回true 删除失败后返回false
     */
    public boolean deleteStudent(String id){
        //调用StudentDao删除学生的方法
        return studentDao.deleteStudent(id);
    }

    /**
     * 根据学生学号更新学生信息的方法
     * @param student 更新后的学生信息
     * @return 更新成功后返回true 更新失败返回false
     */
    public boolean updateStudent(Student student){
        return studentDao.updateStudent(student);
    }

}
